package com.lemobar.pay.enums;

import lombok.Getter;

/**
 * 订单交易状态
 * wx:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_2 中的 trade_state
 */
@Deprecated
@Getter
public enum OrderStatusEnum {

    /*
    微信订单状态：
        SUCCESS--支付成功
        REFUND--转入退款
        NOTPAY--未支付
        CLOSED--已关闭
        REVOKED--已撤销(刷卡支付)
        USERPAYING--用户支付中
        PAYERROR--支付失败(其他原因，如银行返回失败)
        ACCEPT--已接收，等待扣款
     */


    /*
    支付宝订单交易状态：
        WAIT_BUYER_PAY（交易创建，等待买家付款）
        TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）
        TRADE_SUCCESS（交易支付成功）
        TRADE_FINISHED（交易结束，不可退款）
     */

    /*
    双乾订单交易状态：
       0	失败
       1	成功
       2	待处理
       3	取消
       4	结果未返回
     */

    SUCCESS("支付成功"),

    REFUND("转入退款"),

    NOTPAY("未支付"),

    CLOSED("已关闭"),

    REVOKED("已撤销(刷卡支付)"),

    USERPAYING("用户支付中"),

    PAYERROR("支付失败"),

    ACCEPT("已接收，等待扣款"),

    UNKNOW("未知状态"),

    ;

    /**
     * 描述 微信退款后有内容
     */
    private String desc;

    OrderStatusEnum(String desc) {
        this.desc = desc;
    }

    public static OrderStatusEnum findByName(String name) {
        if(name == null){
            return null;
        }
        for (OrderStatusEnum orderStatusEnum : OrderStatusEnum.values()) {
            if (name.toLowerCase().equals(orderStatusEnum.name().toLowerCase())) {
                return orderStatusEnum;
            }
        }
        throw new RuntimeException("错误的微信支付状态");
    }
}
